package com.zbkj.service.service;

import com.github.pagehelper.PageInfo;
import com.zbkj.common.request.*;
import com.zbkj.common.model.traceable.TraceableGroup;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zbkj.common.response.TraceableGroupBrandPageDataResponse;
import com.zbkj.common.response.TraceableGroupDetailResponse;
import com.zbkj.common.response.TraceableGroupFrontSearchResponse;
import com.zbkj.common.response.TraceableGroupPageDataResponse;

import java.util.List;
/**
* @author dazongzi
* @description TraceableGroupService 接口
* @date 2025-07-08
*/
public interface TraceableGroupService extends IService<TraceableGroup> {

    Boolean createPlatform(TraceableGroupSaveRequest traceableGroupSaveRequest);
    Boolean createBrand(TraceableGroupSaveRequest traceableGroupSaveRequest);

    /**
     * 分页查询溯源套餐表
     * @param request 查询条件
     * @param pageParamRequest 分页对行
     * @return 查询结果
     */
    List<TraceableGroupPageDataResponse> getListPlatform(TraceableGroupSearchRequest request, PageParamRequest pageParamRequest);

    /**
     * 分页查询溯源套餐表
     * @param request
     * @param pageParamRequest
     * @return
     */
    List<TraceableGroupBrandPageDataResponse> getListBrand(TraceableGroupBrandSearchRequest request, PageParamRequest pageParamRequest);

    /**
     * 批量删除
     * @param idList
     * @return
     */
    boolean batchDelete(List<Integer> idList);

    /**
     * 修改溯源套餐表
     * @param traceableGroupRequest
     * @return
     */
    boolean updatePlatform(TraceableGroupSaveRequest traceableGroupRequest);
    boolean updateBrand(TraceableGroupSaveRequest traceableGroupRequest);

    /**
     * 查询溯源套餐表详情
     * @param id
     * @return
     */
    TraceableGroupDetailResponse getDetailsPlatform(Integer id);
    TraceableGroupDetailResponse getDetailsBrand(Integer id);

    TraceableGroup getBrandGroup(Integer id);

    TraceableGroup getPlatformGroup(Integer id);

    PageInfo<TraceableGroupFrontSearchResponse> getListFront(TraceableGroupFrontSearchRequest request, PageParamRequest pageParamRequest);
}